#-----------------------------------[知乎：叶枝黎曼]------------------------
'''
给定一个数组和滑动窗口的大小，请找出所有滑动窗口里的最大值。

例如，如果输入数组 [2,3,4,2,6,2,5,1] 及滑动窗口的大小 3，那么一共存在 6 个滑动窗口，它们的最大值分别为 [4,4,6,6,6,5]。

注意：

数据保证 k 大于 0，且 k 小于等于数组长度。
样例
输入：[2, 3, 4, 2, 6, 2, 5, 1] , k=3

输出: [4, 4, 6, 6, 6, 5]
'''
s = [0]+[int(i) for i in input().split()]
k = int(input())
n = len(s) - 1
queue = [0]*(n + 1)

res = []
head = 0
tail = -1
for i in range(1,n+1):
    while head <= tail and i - queue[head] >= k:
        head += 1
    while head <= tail and s[queue[tail]] <= s[i]:
        tail -= 1
    tail += 1
    queue[tail] = i
    if i - k >= 0:
        res.append(s[queue[head]])
print(' '.join(map(str,res)))
